package com.bdqn.t382.mapper;

import com.bdqn.t382.pojo.Account;
import com.bdqn.t382.pojo.TransactionRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface AccountMapper {
    /**
     * 获取账户当前余额
     */
    Double getBalance(@Param("cardno") String cardno);

    //根据起始时间和终止时间分页查询交易记录
    List<TransactionRecord> getPage(String cardno,
                                    Date startDate,
                                    Date endDate,
                                    @Param("offset") Integer offset,
                                    @Param("pageSize") Integer pageSize);

    //登录
    Account login(@Param("cardno") String cardno, @Param("password") String password);

    //修改密码
    int updatePassword(@Param("cardno") String cardno, @Param("oldPassword") String oldPassword, @Param("newPassword") String newPassword);

    //判断账户是否存在
    Integer isAccountExist(@Param("cardno") String cardno);

    //转账
    int transfer(Account account);

    //根据卡号查询账户信息
    Account selectByCardno(String cardno);

    //查询总记录数
    Long count();

    //添加交易记录表
    int addAccount(TransactionRecord transactionRecord);

    //获取token
    Account getAccountByToken(String token);
}